package com.lichuang.dedao.user.service;

import com.lichuang.dedao.user.entity.Collection;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 收藏 服务类
 * </p>
 *
 * @author hanghang
 * @since 2019-07-14
 */
public interface ICollectionService extends IService<Collection> {

    /**
     * 通过缓存查询用户收藏信息
     *
     * @param userId
     * @return
     */
    List<Collection> selectCollectionsWithRedis(Integer userId);

    /**
     * 根据类型查询收藏品
     *
     * @param userId
     * @param collectionType 收藏品的类型
     * @return
     */
    List<Collection> selectCollectionsByType(Integer userId, Integer collectionType);

    /**
     * 更新收藏状态
     * 如果没有此收藏品，会添加一条数据
     * 如果有此收藏品，会修改相对应的收藏状态
     * 最后会查询最新的数据更新redis缓存
     *
     * @param userId
     * @param collectionType 收藏品的类型
     * @param objectId       收藏品Id
     * @return
     */
    List<Collection> updateCollectionsWithRedis(Integer userId, Integer collectionType, Integer objectId);
}
